package be.kdg.bombermanunlimited.client.gui;

import java.awt.Color;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

/*
 * Iedere afbeelding apart laden is omslachtig: dan heb je een folder nodig met 100 kleinde 32*32 afbeeldingen & dit is niet alleen handig maar ook onefficient
 * 
 * Hierdoor gekozen om per logisch geheel (omgeving, speler, tegenstander, bommen, ontploffingen) een spritesheet samen te stellen. Hierbij moet dan een index uit een array aangeroepen worden die het deelafbeeldingkje laadt.
 */

public class SpriteSheet {
	private Image[] sprites;

	public SpriteSheet(int rows, int cols, int width, int height,
			String pathname) {
		try {
			BufferedImage bigImg = ImageIO.read(new File(pathname));
			BufferedImage[] bufferedsprites = new BufferedImage[rows * cols];
			sprites = new Image[rows * cols];
			for (int i = 0; i < rows; i++) {
				for (int j = 0; j < cols; j++) {

					bufferedsprites[(i * cols) + j] = bigImg.getSubimage(j
							* width, i * height, width, height);

					sprites[(i * cols) + j] = (Image) bufferedsprites[(i * cols)
							+ j];
					new Color(0);
					// maakt wit transparant (alle sprites in ons project zijn
					// met witte achtergrond)
					sprites[(i * cols) + j] = Transparentizer
							.makeColorTransparent(sprites[(i * cols) + j],
									Color.white);
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	// geeft deelafbeelding met index number terug
	public Image getSprite(int number) {
		return this.sprites[number];
	}

}
